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 filtro IIR

Filtros FIR IIR vs

La principal ventaja de los filtros IIR sobre los filtros FIR es que normalmente cumplen un conjunto determinado de especificaciones con un orden de filtro mucho más bajo que un filtro FIR correspondiente. Aunque los filtros IIR tienen una fase no lineal, el procesamiento de datos dentro del software normalmente se realiza "sin conexión", es decir, la secuencia de datos completa está disponible antes del filtrado.MATLAB® Esto permite un enfoque de filtrado de fase cero no causal (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íptico, y Bessel, todo aproximado el filtro ideal "pared de ladrillo" de diferentes maneras.

Esta caja de herramientas proporciona funciones para crear todos estos tipos de filtros IIR clásicos tanto en los dominios analógicos como digitales (excepto Bessel, para los que solo se admite la caja analógica), y en configuraciones de paso bajo, paso alto, paso de banda y supresión. 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 dada en términos de atenuación de banda de paso y de banda de stopband 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 frecuencia-respuesta especificada.yulewalk Esta es una manera de crear un filtro de paso de banda de varias bandas.

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

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

Resumen del método de filtro IIR

En la tabla siguiente se resumen los distintos métodos de filtro del cuadro 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

Utilizando los polos y ceros de un filtro de prototipo paso bajo clásico en el dominio continuo (Laplace), obtener 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 pedidos:

, , ,buttordcheb1ordcheb2ordellipord

Funciones de prototipo analógico de lowpass:

, , , ,besselapbuttapcheb1apcheb2apellipap

Funciones de transformación de frecuencia:

, , ,lp2bplp2bslp2hplp2lp

Funciones de discretización del filtro:

,bilinearimpinvar

Diseño directo

Diseñe el filtro digital directamente en el dominio de tiempo discreto aproximando una respuesta de magnitud lineal por tramos.

yulewalk

Diseño generalizado de Butterworth

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

maxflat

Modelado paramétrico

Busque un filtro digital que se aproba 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 filtro digital IIR que proporciona esta caja de herramientas se basa en la conversión de filtros analógicos de paso bajo clásicos 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 en el proceso de diseño del filtro.Temas especiales en 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 supresión utilizando las funciones de diseño de filtro.

Funciones de diseño de filtro

Tipo de filtro

Función de diseño

Bessel (sólo 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 de paso bajo; debe especificar solo la frecuencia de corte que desee, en unidades normalizadas, de manera que la frecuencia Nyquist sea 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 de supresión, especifique como un vector de dos elementos que contiene las frecuencias de borde de la banda de paso.Wn Anexar para la configuración de supresión.'stop'

Estos son algunos ejemplos de filtros digitales:

[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 las 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, ganancia de polo cero o representación de 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 el formulario de ganancia de polo cero que puede convertir a un formulario de sección de segundo orden (SOS) utilizando y, a continuación, utilizar el formulario SOS para analizar o implementar el filtro.zp2sos

Nota

Todos los filtros de paso bajo IIR clásicos están mal acondicionados para frecuencias de corte extremadamente bajas. Por lo tanto, en lugar de diseñar un filtro IIR 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 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 con un conjunto determinado de requisitos.

Tipo de filtro

Función de estimación de orden

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 en conjunción con las funciones de diseño de 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, a lo más 1 dB de ondulación de banda de paso, y al menos 60 dB de atenuación de la banda de suspensión. 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 con los mismos requisitos viene 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 con los filtros analógicos.

Comparación de los tipos de filtro 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 el formulario de prototipo analógico básico 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 paso bajo ideal a frecuencias analógicas Ω  = 0 Y Ω = ∞; para cualquier orden, la respuesta de magnitud cuadrada haN 2N – 1 cero derivados en estos lugares (enmaximally flat Ω = 0 Y Ω = ∞). La respuesta es monótona en general, disminuyendo suavemente de Ω = 0 Para Ω = ∞. |H(jΩ)|=1/2 En Ω = 1.

Filtro de tipo I de Chebyshev

El filtro Chebyshev tipo I minimiza la diferencia absoluta entre la respuesta de frecuencia ideal y real sobre toda la banda de paso al incorporar una ondulación igual de dB en la banda de paso.Rp La respuesta de la banda de suspensión es máxima plana. La transición de la banda de paso a la banda de detención 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 suspensión al incorporar una ondulación igual de dB en la banda de suspensión.Rs La respuesta de banda de paso es máxima plana.

La banda de detención no se acerca a cero tan rápido como el filtro de tipo I (y no se acerca a cero en absoluto para el orden de filtro de valor incluso).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.

El filtro elíptico

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

Filtro de Bessel

Los filtros de paso bajo analógicos Bessel tienen una demora de grupo máxima en frecuencia cero y retienen un retardo de grupo casi constante en toda la banda de paso. Por lo tanto, las señales filtradas mantienen sus formas onda en el rango de frecuencias de banda de paso. La frecuencia asignada y los filtros digitales de Bessel, sin embargo, no tienen esta propiedad maximalmente plana; Esta caja de herramientas sólo admite el caso analógico para la función de diseño de filtro de Bessel completa.

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

Nota

Los filtros de paso bajo mostrados anteriormente se crearon con las funciones de prototipo analógico,,, y.besselapbuttapcheb1apcheb2apellipap Estas funciones encuentran los ceros, polos y ganancia de un filtro analógico de orden th del tipo apropiado con una frecuencia de corte de 1 Rad/s.n Las funciones completas de diseño de filtro (,,, y) llaman a las funciones de prototipado como un primer paso en el proceso de diseño.besselfbuttercheby1cheby2ellip Ver para más detalles.Temas especiales en diseño de filtros IIR

Para crear trazados similares, utilice = y, según sea necesario, = y =.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 las técnicas de diseño de IIR que encuentran un filtro basado en las especificaciones en el dominio discreto.direct methods A diferencia del método de prototipado 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 supresión. Más bien, estas funciones diseñan filtros con una respuesta de frecuencia arbitraria, tal vez multibanda. Esta sección discute la función, que se piensa específicamente para el diseño del filtro; analiza 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 frecuencias inversas.yulewalkModelado paramétrico

La función diseña filtros digitales IIR recursivos mediante la adaptación de una respuesta de frecuencia especificada. su nombre refleja su método para encontrar los coeficientes de denominador del filtro: encuentra la FFT inversa de la respuesta de magnitud especificada cuadrada ideal y resuelve las ecuaciones Yule-Walker modificadas 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 contiene los coeficientes numerador y denominador del filtro IIR de orden TH cuyas características de magnitud de frecuencia se aproximan a las dadas en vectores y. es un vector de puntos de frecuencia que oscila entre 0 y 1, donde 1 representa la frecuencia Nyquist. es un vector que contiene la respuesta de magnitud especificada en los puntos en. y puede describir cualquier respuesta de magnitud de forma lineal por tramos, incluida una respuesta multibanda.ban+1nfmfmffm El homólogo FIR de esta función es, que también diseña un filtro basado en una respuesta de magnitud lineal por tramos arbitraria.fir2 Ver para más detalles.Diseño de filtro FIR

Tenga en cuenta que no acepta información de fase y no se realiza ninguna declaración sobre la optimalidad 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 de filtro de Butterworth generalizado

La función Toolbox le permite diseñar filtros de 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 ceros. es igual que la función, excepto que puede especificar órdenes (una para el numerador y otra para el denominador) en lugar de solo una.maxflatbuttertwo Estos filtros son.maximally flat Esto significa que el filtro resultante es óptimo para cualquier orden 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 iguales, es la misma 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 demaxflathalf-power frequency 1/2.

También puede diseñar filtros de fase lineales que tengan la propiedad máxima 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]