Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Diseño de filtros IIR

Filtros IIR vs.

La principal ventaja de los filtros IIR sobre los filtros FIR es que normalmente cumplen con un conjunto determinado de especificaciones con un orden de filtro mucho menor que un filtro FIR correspondiente. Aunque los filtros IIR tienen fase no lineal, el procesamiento de datos dentro del software se realiza comúnmente "sin conexión", es decir, toda la secuencia de datos está disponible antes del filtrado.MATLAB® Esto permite un enfoque de filtrado no causal de fase cero (a través de la función), que elimina la distorsión de fase no lineal de un filtro IIR.filtfilt

Filtros IIR clásicos

Los filtros IIR clásicos, Butterworth, Chebyshev Tipos I y II, elípticos y Bessel, se aproximan al filtro ideal de "pared de ladrillo" de diferentes maneras.

Esta caja de herramientas proporciona funciones para crear todos estos tipos de filtros IIR clásicos en los dominios analógicos y digitales (excepto Bessel, para el que solo se admite la carcasa analógica), y en las configuraciones lowpass, highpass, bandpass y bandstop. Para la mayoría de los tipos de filtro, también puede encontrar el orden de filtro más bajo que se ajuste a una especificación de filtro determinada en términos de atenuación de banda de paso y banda de parada, y ancho(s) de transición.

Otros filtros IIR

La función de diseño de filtro directo encuentra un filtro con respuesta de magnitud que se aproxima a una función de respuesta de frecuencia especificada.yulewalk Esta es una manera de crear un filtro de paso de banda multibanda.

También puede utilizar las funciones de modelado paramétrico o de identificación del sistema para diseñar filtros IIR. Estas funciones se describen en .Modelado paramétrico

La función de diseño generalizado de Butterworth se describe en la sección .maxflatDiseño generalizado del filtro Butterworth

Resumen del método de filtro IIR

En la tabla siguiente se resumen los distintos métodos de filtro de la caja de herramientas y se enumeran las funciones disponibles para implementar estos métodos.

Métodos de filtros de Toolbox y funciones disponibles

Método de filtroDescripciónFunciones de filtro

Prototipado analógico

Usando los polos y ceros de un filtro prototipo clásico de paso bajo en el dominio continuo (Laplace), obtenga un filtro digital a través de la transformación de frecuencia y la discretización del filtro.

Funciones de diseño completas:

, , , ,besselfbuttercheby1cheby2ellip

Funciones de estimación de óseo:

, , ,buttordcheb1ordcheb2ordellipord

Funciones de prototipo analógico lowpass:

, , , ,besselapbuttapcheb1apcheb2apellipap

Funciones de transformación de frecuencia:

, , ,lp2bplp2bslp2hplp2lp

Funciones de discretización del filtro:

,bilinearimpinvar

Diseño directo

Diseñe un filtro digital directamente en el dominio de tiempo discreto mediante la aproximación de una respuesta de magnitud lineal por pieza.

yulewalk

Diseño Generalizado de Butterworth

Diseñe filtros Butterworth de paso bajo con más ceros que postes.

maxflat

Modelado paramétrico

Busque un filtro digital que se aproxime a una respuesta de dominio de tiempo o frecuencia prescrita. (Consulte la documentación para obtener una extensa colección de herramientas de modelado paramétrico.)System Identification Toolbox™

Funciones de modelado de dominio de tiempo:

, ,lpcpronystmcb

Funciones de modelado de dominio de frecuencia:

,invfreqsinvfreqz

Diseño de filtro IIR clásico mediante prototipado analógico

La principal técnica de diseño de filtros digitales IIR que proporciona esta caja de herramientas se basa en la conversión de filtros analógicos clásicos de paso bajo a sus equivalentes digitales. En las secciones siguientes se describe cómo diseñar filtros y resumir las características de los tipos de filtro admitidos. Consulte los pasos detallados sobre el proceso de diseño del filtro.Temas especiales en el diseño de filtros IIR

Diseño de filtro IIR clásico completo

Puede crear fácilmente un filtro de cualquier orden con una configuración de paso bajo, paso alto, paso de banda o bandstop utilizando las funciones de diseño del filtro.

Funciones de diseño de filtros

Tipo de filtro

Función de diseño

Bessel (solo analógico)

[b,a] = besself(n,Wn,options)

[z,p,k] = besself(n,Wn,options)

[A,B,C,D] = besself(n,Wn,options)

Butterworth

[b,a] = butter(n,Wn,options)

[z,p,k] = butter(n,Wn,options)

[A,B,C,D] = butter(n,Wn,options)

Chebyshev Tipo I

[b,a] = cheby1(n,Rp,Wn,options)

[z,p,k] = cheby1(n,Rp,Wn,options)

[A,B,C,D] = cheby1(n,Rp,Wn,options)

Chebyshev Tipo II

[b,a] = cheby2(n,Rs,Wn,options)

[z,p,k] = cheby2(n,Rs,Wn,options)

[A,B,C,D] = cheby2(n,Rs,Wn,options)

Elíptica

[b,a] = ellip(n,Rp,Rs,Wn,options)

[z,p,k] = ellip(n,Rp,Rs,Wn,options)

[A,B,C,D] = ellip(n,Rp,Rs,Wn,options)

De forma predeterminada, cada una de estas funciones devuelve un filtro lowpass; debe especificar sólo la frecuencia de corte que desee, en unidades normalizadas de modo que la frecuencia Nyquist sea de 1 Hz).Wn Para un filtro de paso alto, anexe a la lista de parámetros de la función.'high' Para un filtro de paso de banda o bandstop, especifique como un vector de dos elementos que contenga las frecuencias de borde de banda de paso.Wn Anexar para la configuración de bandstop.'stop'

Estos son algunos filtros digitales de ejemplo:

[b,a] = butter(5,0.4);                    % Lowpass Butterworth [b,a] = cheby1(4,1,[0.4 0.7]);            % Bandpass Chebyshev Type I [b,a] = cheby2(6,60,0.8,'high');          % Highpass Chebyshev Type II [b,a] = ellip(3,1,60,[0.4 0.7],'stop');   % Bandstop elliptic 

Para diseñar un filtro analógico, tal vez para la simulación, utilice un trailing y especifique frecuencias de corte en rad/s:'s'

[b,a] = butter(5,0.4,'s');      % Analog Butterworth filter 

Todas las funciones de diseño de filtro devuelven un filtro en la función de transferencia, la ganancia de polo cero o la representación del modelo de sistema lineal de espacio de estado, dependiendo de cuántos argumentos de salida estén presentes. En general, debe evitar el uso del formulario de función de transferencia porque pueden producirse problemas numéricos causados por errores de redondeo. En su lugar, utilice la forma de ganancia de polo cero que puede convertir en un formulario de sección de segundo orden (SOS) utilizando y, a continuación, utilice el formulario SOS para analizar o implementar el filtro.zp2sos

Nota

Todos los filtros clásicos IIR lowpass están mal acondicionados para frecuencias de corte extremadamente bajas. Por lo tanto, en lugar de diseñar un filtro IIR de paso bajo con una banda de paso muy estrecha, puede ser mejor diseñar una banda de paso más ancha y diezmar la señal de entrada.

Diseño de filtros IIR a las especificaciones de dominio de frecuencia

Esta caja de herramientas proporciona funciones de selección de orden que calculan el orden de filtro mínimo que cumple un conjunto determinado de requisitos.

Tipo de filtro

Función de estimación de pedidos

Butterworth

[n,Wn] = buttord(Wp,Ws,Rp,Rs)

Chebyshev Tipo I

[n,Wn] = cheb1ord(Wp,Ws,Rp,Rs)

Chebyshev Tipo II

[n,Wn] = cheb2ord(Wp,Ws,Rp,Rs)

Elíptica

[n,Wn] = ellipord(Wp,Ws,Rp,Rs)

Estos son útiles junto con las funciones de diseño del filtro. Supongamos que desea un filtro de paso de banda con una banda de paso de 1000 a 2000 Hz, bandas de parada a partir de 500 Hz de distancia a cada lado, una frecuencia de muestreo de 10 kHz, como máximo 1 dB de ondulación de banda de paso y al menos 60 dB de atenuación de la banda de parada. Puede cumplir estas especificaciones utilizando la función de la siguiente manera.butter

[n,Wn] = buttord([1000 2000]/5000,[500 2500]/5000,1,60) [b,a] = butter(n,Wn);
n =     12 Wn =     0.1951    0.4080

Un filtro elíptico que cumple los mismos requisitos es dado por

[n,Wn] = ellipord([1000 2000]/5000,[500 2500]/5000,1,60) [b,a] = ellip(n,1,60,Wn);
n =     5 Wn =     0.2000    0.4000

Estas funciones también funcionan con las otras configuraciones de banda estándar, así como para filtros analógicos.

Comparación de tipos de filtros IIR clásicos

La caja de herramientas proporciona cinco tipos diferentes de filtros IIR clásicos, cada uno óptimo de alguna manera. Esta sección muestra la forma de prototipo analógica básica para cada uno y resume las características principales.

Filtro Butterworth

El filtro Butterworth proporciona la mejor aproximación de la serie Taylor a la respuesta de filtro de paso bajo ideal a frecuencias analógicas Ω  = 0 Y Ω = ∞; para cualquier orden, la respuesta cuadrada de magnitud haN 2N – 1 cero derivados en estas ubicaciones (enmáximo plano Ω = 0 Y Ω = ∞). La respuesta es monotónica en general, disminuyendo Ω = 0 Para Ω = ∞. |H(jΩ)|=1/2 En Ω = 1.

Filtro Chebyshev Tipo I

El filtro Chebyshev Tipo I minimiza la diferencia absoluta entre la respuesta de frecuencia ideal y real en toda la banda de paso mediante la incorporación de una ondulación igual de dB en la banda de paso.Rp La respuesta de la banda de parada es máximamente plana. La transición de passband a stopband es más rápida que para el filtro Butterworth. |H(jΩ)|=10Rp/20 En Ω = 1.

Filtro Chebyshev Tipo II

El filtro Chebyshev Tipo II minimiza la diferencia absoluta entre la respuesta de frecuencia ideal y real en toda la banda de parada mediante la incorporación de una ondulación igual de dB en la banda de parada.Rs La respuesta de la banda de paso es máximamente plana.

La banda de detención no se acerca a cero tan rápidamente como el tipo I filtrar (y no se acerca a cero en absoluto para el orden de filtro de valor par).n La ausencia de ondulación en la banda de paso, sin embargo, es a menudo una ventaja importante. |H(jΩ)|=10Rs/20 En Ω = 1.

Filtro elíptico

Los filtros elípticos son equisicionales tanto en la banda de paso como en la banda de parada. Por lo general, cumplen los requisitos de filtro con el orden más bajo de cualquier tipo de filtro admitido. Dada una orden de filtro, ondulación de banda de paso en decibelios y ondulación de banda de parada en decibelios, los filtros elípticos minimizan el ancho de transición.nRpRs |H(jΩ)|=10Rp/20 En Ω = 1.

Filtro Bessel

Los filtros de paso bajo analógicos de Bessel tienen un retardo de grupo plano máximo a una frecuencia cero y retienen el retardo de grupo casi constante en toda la banda de paso. Por lo tanto, las señales filtradas mantienen sus formas de onda en el rango de frecuencia de banda de paso. Cuando un filtro de paso bajo bessel analógico se convierte en uno digital a través de la asignación de frecuencia, ya no tiene esta propiedad máximamente plana. solo admite la carcasa analógica para la función completa de diseño del filtro Bessel.Signal Processing Toolbox™

Los filtros Bessel generalmente requieren un orden de filtro más alto que otros filtros para una atenuación satisfactoria de la banda de detención. |H(jΩ)|<1/2 En Ω = 1 y disminuye a medida que aumenta el orden del filtro.n

Nota

Los filtros lowpass mostrados anteriormente se crearon con las funciones de prototipo analógico, , , , y .besselapbuttapcheb1apcheb2apellipap Estas funciones encuentran los ceros, los polos y la ganancia de un filtro analógico de la orden th del tipo adecuado con una frecuencia de corte de 1 rad/s.n Las funciones completas de diseño de filtro ( , , , , , , y ) llaman a las funciones de creación de prototipos como primer paso en el proceso de diseño.besselfbuttercheby1cheby2ellip Consulte para obtener más información.Temas especiales en el diseño de filtros IIR

Para crear trazados similares, utilice los archivos .n5Rp0.5Rs20 Por ejemplo, para crear el trazado de filtro elíptico:

[z,p,k] = ellipap(5,0.5,20); w = logspace(-1,1,1000); h = freqs(k*poly(z),poly(p),w); semilogx(w,abs(h)), grid xlabel('Frequency (rad/s)') ylabel('Magnitude')

Diseño directo del filtro IIR

Esta caja de herramientas utiliza el término para describir técnicas para el diseño IIR que encuentran un filtro basado en especificaciones en el dominio discreto.métodos directos A diferencia del método de creación de prototipos analógico, los métodos de diseño directo no están restringidos a las configuraciones estándar de paso bajo, paso alto, paso de banda o bandstop. Más bien, estas funciones diseñan filtros con una respuesta de frecuencia arbitraria, tal vez multibanda. En esta sección se describe la función, que está diseñada específicamente para el diseño de filtros; discute otros métodos que también pueden considerarse directos, como el método de Prony, la predicción lineal, el método Steiglitz-McBride y el diseño de frecuencia inversa.yulewalkModelado paramétrico

La función diseña filtros digitales IIR recursivos ajustando una respuesta de frecuencia especificada. 's name refleja su método para encontrar los coeficientes del denominador del filtro: encuentra el FFT inverso de la respuesta de magnitud cuadrada especificada ideal y resuelve las ecuaciones modificadas de Yule-Walker utilizando las muestras de función de autocorrelación resultantes.yulewalkyulewalk La declaración

[b,a] = yulewalk(n,f,m) 

devuelve vectores de fila y que contienen los coeficientes de numerador y denominador del filtro IIR de orden anterior cuyas características de magnitud de frecuencia se aproximan a las indicadas en vectores y . es un vector de puntos de frecuencia que va de 0 a 1, donde 1 representa la frecuencia Nyquist. es un vector que contiene la respuesta de magnitud especificada en los puntos de . y puede describir cualquier respuesta de magnitud de forma lineal por pieza, incluida una respuesta multibanda.ban+1nfmfmffm La contraparte FIR de esta función es , que también diseña un filtro basado en una respuesta de magnitud lineal por partes arbitrarias.fir2 Consulte para obtener más información.Diseño de filtro FIR

Tenga en cuenta que no acepta información de fase y no se realizan instrucciones sobre la óptimaidad del filtro resultante.yulewalk

Diseñe un filtro multibanda con y trace la respuesta de frecuencia especificada y real:yulewalk

m = [0   0   1   1   0   0   1   1   0 0]; f = [0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 1]; [b,a] = yulewalk(10,f,m); [h,w] = freqz(b,a,128) plot(f,m,w/pi,abs(h)) 

Diseño generalizado del filtro Butterworth

La función de caja de herramientas le permite diseñar filtros Butterworth generalizados, es decir, filtros Butterworth con diferentes números de ceros y polos.maxflat Esto es deseable en algunas implementaciones donde los polos son más caros computacionalmente que los ceros. es igual que la función, excepto que puede especificar órdenes (una para el numerador y otra para el denominador) en lugar de una sola.maxflatbutterDos Estos filtros son .máximo plano Esto significa que el filtro resultante es óptimo para cualquier orden de numerador y denominador, con el número máximo de derivados en 0 y la frecuencia Nyquist ω = π ambos se establecen en 0.

Por ejemplo, cuando las dos órdenes son las mismas, es lo mismo que:maxflatbutter

[b,a] = maxflat(3,3,0.25)
b =     0.0317    0.0951    0.0951    0.0317 a =     1.0000   -1.4590    0.9104   -0.1978
[b,a] = butter(3,0.25)
b =     0.0317    0.0951    0.0951    0.0317 a =     1.0000   -1.4590    0.9104   -0.1978

Sin embargo, es más versátil porque le permite diseñar un filtro con más ceros que polos:maxflat

[b,a] = maxflat(3,1,0.25)
b =     0.0950    0.2849    0.2849    0.0950 a =     1.0000   -0.2402

La tercera entrada es la , una frecuencia entre 0 y 1 con una respuesta de magnitud demaxflatfrecuencia de media potencia 1/2.

También puede diseñar filtros de fase lineal que tengan la propiedad máximamente plana utilizando la opción:'sym'

maxflat(4,'sym',0.3)
ans =     0.0331    0.2500    0.4337    0.2500    0.0331

Para obtener detalles completos del algoritmo, consulte Selesnick y Burrus .maxflat[2]