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.
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.
Ω 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.
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.
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
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:
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.
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Ω)
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
Hd(ejΩ)
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
-Ω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…
20 log 10|W (e )|
20 log 10|W (e )|
jΩ
jΩ
Ω Ω
20 log 10|W (e )|
jΩ
20 log 10|W (e )|
jΩ
Ω
Ω
Ω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
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(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 Ω )=
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:
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
38
Diseño de filtros digitales con Matlab
H(ejΩ)
Ω/p
39
Diseño de filtros digitales con Matlab
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')
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
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.
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á:
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:
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);
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:
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);
47
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
Ω/p 48
Diseño de filtros digitales con Matlab
M
jΩ
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
∆Ω
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:
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{:});
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
54
Diseño de filtros digitales con Matlab
Abriendo fdatool
55
Diseño de filtros digitales con Matlab
fdatool: opciones
56
Diseño de filtros digitales con Matlab
Editando el filtro
57