Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ASS
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
Aplicaciones:
Comunicaciones Sismología
Radar/Teledetección Bio-Ingeniería
4
Fundamentos del filtrado digital
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
●
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.
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.
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.
Ω 9
Ωq1 Ωp1 Ωp2 Ωq2
Diseño de filtros digitales
Paso 1. Respuesta en frecuencia deseada
|H(ejΩ)| |H(ejΩ)|
Ω Ω
|H(ejΩ)| |H(ejΩ)|
Ω Ω
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
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]
Paso 3: Estructuras
12
Diseño de filtros digitales
Estructuras de FIR
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.
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
¿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:
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.
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Ω)
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Ω)|
Hd(ejΩ)
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
-Ωc Ωc
22
Diseño de filtros digitales
Barlett (triangular)
Hanning
Hamming
23
Diseño de filtros digitales
DISEÑO DE FILTROS FIR (cont.)
Tipos de ventanas (cont.)
Respuesta en frecuencia…
Ω Ω
Ω
Ω
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
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
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.
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.)
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.
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).
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 Ω ) ]
dΩ
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Ω)
Ω/ Ω/
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
r=0.8;
angulo=pi/3;
polo=r*exp(j*angulo);
zplane([conj(polo) 1],[1 polo])
title('ceros y polos de Hap(z)')
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
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
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.
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á:
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:
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);
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:
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);
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
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.
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);
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.
{ }
M
jΩ e− j Ω |Ω|<Ω c ; faseLineal
H d (e )= 2
0 resto
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
∆Ω
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:
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{:});
Hemos visto que Matlab ofrece múltiples herramientas para el análisis y diseño
de filtros digitales:
Además, Matlab ofrece una interfaz gráfica para el diseño y análisis de filtros
digitales: FDATOOL.
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
55
Diseño de filtros digitales con Matlab
Abriendo fdatool
56
Diseño de filtros digitales con Matlab
fdatool: opciones
57
Diseño de filtros digitales con Matlab
Editando el filtro
58