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.

Temas especiales en diseño de filtros IIR

Diseño de filtro IIR clásico

La técnica de diseño de filtro IIR clásica incluye los siguientes pasos.

  1. Encuentre un filtro de paso bajo analógico con frecuencia de corte de 1 y traduzca este filtro de prototipo a la configuración de banda especificada

  2. Transforme el filtro en el dominio digital.

  3. Discretizar el filtro.

La caja de herramientas proporciona funciones para cada uno de estos pasos.

Tarea de diseño

Las funciones disponibles

El prototipo de paso bajo analógico

, , , ,buttapcheb1apbesselapellipapcheb2ap

La transformación de frecuencia

, , ,lp2lplp2hplp2bplp2bs

Discretización

,bilinearimpinvar

Alternativamente, las funciones,,, y realizan todos los pasos del diseño del filtro y el,, y las funciones proporcionan el cálculo de orden mínimo para los filtros IIR.buttercheby1cheb2ordellipbesselfbuttordcheb1ordcheb2ordellipord Estas funciones son suficientes para muchos problemas de diseño, y las funciones de nivel inferior generalmente no son necesarias. Pero si tiene una aplicación en la que necesita transformar los bordes de la banda de un filtro analógico, o discretizar una función de transferencia racional, esta sección describe las herramientas con las que hacerlo.

Diseño de prototipo analógico

Esta caja de herramientas proporciona una serie de funciones para crear filtros de prototipo analógico paso bajo con frecuencia de corte de 1, el primer paso en el enfoque clásico para el diseño de filtro IIR.

La tabla siguiente resume las funciones de diseño de prototipo analógico para cada tipo de filtro admitido; parcelas para cada tipo se muestran en.Diseño de filtro IIR

Tipo de filtro

Función de prototipo analógico

Bessel

[z,p,k] = besselap(n)

Butterworth

[z,p,k] = buttap(n)

Chebyshev tipo I

[z,p,k] = cheb1ap(n,Rp)

Chebyshev tipo II

[z,p,k] = cheb2ap(n,Rs)

Elíptica

[z,p,k] = ellipap(n,Rp,Rs)

Transformación de frecuencia

El segundo paso en la técnica de diseño de prototipos analógicos es la transformación de frecuencia de un prototipo paso bajo. La caja de herramientas proporciona un conjunto de funciones para transformar los prototipos de paso bajo analógico (con una frecuencia de corte de 1 Rad/s) en filtros de paso de banda, paso alto, Bandstop y paso bajo con la frecuencia de corte especificada.

Transformación de frecuencia

Función de transformación

Paso bajo a paso bajo

s=s/ω0

[numt,dent]   = lp2lp (num,den,Wo)

[At,Bt,Ct,Dt] = lp2lp (A,B,C,D,Wo)

Lowpass a paso alto

s=ω0s

[numt,dent]   = lp2hp (num,den,Wo)

[At,Bt,Ct,Dt] = lp2hp (A,B,C,D,Wo)

Lowpass a paso de banda

s=ω0Bω(s/ω0)2+1s/ω0

[numt,dent]   = lp2bp (num,den,Wo,Bw)

[At,Bt,Ct,Dt] = lp2bp (A,B,C,D,Wo,Bw)

Lowpass a supresión

s=Bωω0s/ω0(s/ω0)2+1

[numt,dent]   = lp2bs (num,den,Wo,Bw)

[At,Bt,Ct,Dt] = lp2bs( A,B,C,D,Wo,Bw)

Como se muestra, todas las funciones de transformación de frecuencia pueden aceptar dos modelos de sistema lineales: función de transferencia y forma de espacio de estado. Para el paso de banda y los casos de supresión

ω0=ω1ω2

Y

Bω=ω2ω1

donde ω1 es el borde inferior de la banda y ω2 es el borde superior de la banda.

Las funciones de transformación de frecuencia realizan la sustitución de variables de frecuencia. En el caso de y, se trata de una sustitución de segundo orden, por lo que el filtro de salida es el doble del orden de la entrada.lp2bplp2bs Para y, el filtro de salida es el mismo orden que la entrada.lp2lplp2hp

Para empezar a diseñar una orden 10 filtro de paso de banda Chebyshev tipo I con un valor de 3 dB para la ondulación de banda de paso, ingrese

[z,p,k] = cheb1ap(10,3); 

Salidas, y contienen los ceros, polos y ganancia de un filtro analógico de paso bajo con frecuencia de corte Ωzpkc igual a 1 Rad/s. Utilice la función para transformar este prototipo paso bajo en un filtro analógico de paso de banda con bordes de bandas Ω1 = π/5 Y Ω2 = π. En primer lugar, convierta el filtro al formulario de espacio de estado para que la función pueda aceptarlo:lp2bp

[A,B,C,D] = zp2ss(z,p,k);   % Convert to state-space form.

Ahora, encuentre el ancho de banda y la frecuencia central, y llame:lp2bp

u1 = 0.1*2*pi; u2 = 0.5*2*pi;   % In radians per second Bw = u2-u1; Wo = sqrt(u1*u2); [At,Bt,Ct,Dt] = lp2bp(A,B,C,D,Wo,Bw);

Finalmente, calcule la respuesta de frecuencia y trace su magnitud:

[b,a] = ss2tf(At,Bt,Ct,Dt);        % Convert to TF form w = linspace(0.01,1,500)*2*pi;     % Generate frequency vector h = freqs(b,a,w);                  % Compute frequency response semilogy(w/2/pi,abs(h))            % Plot log magnitude vs. freq xlabel('Frequency (Hz)') grid

La discretización del filtro

El tercer paso de la técnica de prototipado analógico es la transformación del filtro al dominio de tiempo discreto. La caja de herramientas proporciona dos métodos para esto: la invariante de impulso y las transformaciones bilineales. Las funciones de diseño del filtro,,, y utilizan la transformación bilineal para la discretización en este paso.buttercheby1cheby2ellip

La transformación analógica a digital

Función de transformación

La invarianza del impulso

[numd,dend] = impinvar (num,den,fs)

Transformación bilineal

[zd,pd,kd] = bilinear (z,p,k,fs,Fp)

[numd,dend] = bilinear (num,den,fs,Fp)

[Ad,Bd,Cd,Dd] = bilinear (At,Bt,Ct,Dt,fs,Fp)

Invarianza de impulsos

La función de caja de herramientas crea un filtro digital cuya respuesta de impulso son las muestras de la respuesta de impulso continuo de un filtro analógico.impinvar Esta función sólo funciona en los filtros del formulario de función de transferencia. Para obtener los mejores resultados, el filtro analógico debe tener un contenido de frecuencia insignificante por encima de la mitad de la frecuencia de muestreo, ya que dicho contenido de alta frecuencia se convierte en bandas inferiores al muestrear. La invarianza del impulso funciona para algunos filtros de paso bajo y de banda, pero no es apropiado para filtros de paso alto y de banda.

Diseñe un filtro Chebyshev tipo I y trace su frecuencia y respuesta de fase utilizando FVTool:

[bz,az] = impinvar(b,a,2); fvtool(bz,az) 

Haga clic en el botón de la barra.Magnitude and Phase Response

La invarianza del impulso retiene las frecuencias de corte de 0,1 Hz y 0,5 Hz.

Transformación bilineal

La transformación bilineal es una asignación no lineal del dominio continuo al dominio discreto; asigna el-plano en el plano porsz

H(z)=H(s)|s=kz1z+1

La transformación bilineal asigna el eje Ω del dominio continuo al círculo unitario del dominio discreto según j

ω=2tan1(Ωk)

La función de cuadro de herramientas implementa esta operación, donde la constante de deformación de frecuencia es igual al doble de la frecuencia de muestreo () de forma predeterminada e igual abilineark2*fs 2πfp/tan(πfp/fs)Si se da un argumento final que representa una frecuencia de "coincidencia".bilinearFp Si una frecuencia de coincidencia (en hercios) está presente, asigna la frecuencia Ω = 2Fpbilinearπfp (en Rad/s) a la misma frecuencia en el dominio discreto, normalizado a la frecuencia de muestreo: ω = 2πfp/Fs (en Rad/Sample).

La función puede realizar esta transformación en tres representaciones de sistema lineales diferentes: ganancia de polo cero, función de transferencia y forma de espacio de estado.bilinear Intente llamar con las matrices de espacio de estado que describen el filtro Chebyshev tipo I de la sección anterior, utilizando una frecuencia de muestreo de 2 Hz, y conservando el borde inferior de la banda de 0,1 Hz:bilinear

[Ad,Bd,Cd,Dd] = bilinear(At,Bt,Ct,Dt,2,0.1); 

La respuesta de frecuencia del filtro digital resultante es

[bz,az] = ss2tf(Ad,Bd,Cd,Dd);       % Convert to TF fvtool(bz,az) 

Haga clic en el botón de la barra.Magnitude and Phase Response

El borde inferior de la banda está a 0,1 Hz como se esperaba. Observe, sin embargo, que el borde superior de la banda es ligeramente inferior a 0,5 Hz, aunque en el dominio analógico era exactamente 0,5 Hz. Esto ilustra la naturaleza no lineal de la transformación bilineal. Para contrarrestar esta no linealidad, es necesario crear filtros de dominio analógico con bordes de banda "prewarped", que se asignan a las ubicaciones correctas sobre la transformación bilineal. Aquí las frecuencias prewarped y generar y para la función:u1u2BwWolp2bp

fs = 2;                           % Sampling frequency (hertz) u1 = 2*fs*tan(0.1*(2*pi/fs)/2);   % Lower band edge (rad/s) u2 = 2*fs*tan(0.5*(2*pi/fs)/2);   % Upper band edge (rad/s) Bw = u2 - u1;                     % Bandwidth Wo = sqrt(u1*u2);                 % Center frequency [At,Bt,Ct,Dt] = lp2bp(A,B,C,D,Wo,Bw); 

Un filtro de paso de banda digital con los bordes correctos de las bandas 0,1 y 0,5 veces la frecuencia Nyquist es

[Ad,Bd,Cd,Dd] = bilinear(At,Bt,Ct,Dt,fs); 

Los filtros de paso de banda de ejemplo de las dos últimas secciones también se pueden crear en una instrucción utilizando la función de diseño IIR completa.cheby1 Por ejemplo, una versión analógica del filtro de ejemplo Chebyshev es

[b,a] = cheby1(5,3,[0.1 0.5]*2*pi,'s'); 

Tenga en cuenta que los bordes de la banda están en Rad/s para los filtros analógicos, mientras que para el caso digital, la frecuencia se normaliza:

[bz,az] = cheby1(5,3,[0.1 0.5]); 

Todas las funciones de diseño completas llaman internamente.bilinear Prewarp los bordes de la banda según sea necesario para obtener el filtro digital correcto.