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 el diseño de filtros IIR

Diseño de filtro IIR clásico

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

  1. Encuentre un filtro de paso bajo analógico con frecuencia de corte de 1 y traduzca este filtro 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

Funciones disponibles

Prototipo analógico de paso bajo

, , , ,buttapcheb1apbesselapellipapcheb2ap

Transformación de frecuencia

, , ,lp2lplp2hplp2bplp2bs

Discretización

,bilinearimpinvar

Alternativamente, las funciones , , , , y realizan todos los pasos del diseño del filtro y las funciones , , , y proporcionan un 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 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 prototipo analógicos de paso bajo con frecuencia de corte de 1, el primer paso en el enfoque clásico para el diseño de filtros IIR.

La siguiente tabla resume las funciones de diseño de prototipos analógicos para cada tipo de filtro admitido; las gráficas para cada tipo se muestran en .Diseño de filtros 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 de paso bajo. La caja de herramientas proporciona un conjunto de funciones para transformar prototipos analógicos de paso bajo (con frecuencia de corte de 1 rad/s) en filtros de paso de banda, paso alto, paso de banda 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)

Paso bajo al 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 bandstop

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 lineal: función de transferencia y forma de espacio de estado. Para los casos de paso de banda y bandstop

ω0=ω1ω2

Y

Bω=ω2ω1

donde1 es el borde de la banda inferior y el borde de la banda inferior2 es el borde de la banda superior.

Las funciones de transformación de frecuencia realizan la sustitución de variables de frecuencia. En el caso de y , esto es 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 comenzar a diseñar un filtro de orden 10 bandpass 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, los polos y la ganancia de un filtro analógico de paso bajo con frecuencia de cortezpkc igual a 1 rad/s. Utilice la función para transformar este prototipo de paso bajo en un filtro analógico de paso de banda con bordes de banda Ω1 = π/5 Y Ω2 = π. En primer lugar, convierta el filtro a forma 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 del centro, 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);

Por último, 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

Discretización del filtro

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

Transformación análoga a digital

Función de transformación

Invariancia de 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)

Invariancia de impulso

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 solo funciona en filtros en forma de función de transferencia. Para obtener 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 crea como alias en bandas inferiores al muestrear. La invariancia de impulso funciona para algunos filtros de paso bajo y paso de banda, pero no es adecuada para los filtros de paso alto y de paso 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 de herramientas.Magnitude and Phase Response

La invariancia de impulso stiene 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; mapea el -plano en el -plano porsz

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

La transformación bilineal asigna el eje -o del dominio continuo al círculo de unidaddel dominio discreto según j

ω=2tan1(Ωk)

La función de caja de herramientas implementa esta operación, donde la constante de deformación de frecuencia es igual al doble de la frecuencia de muestreo ( ) por defecto, e igual abilineark2*fs 2πfp/tan(πfp/fs)si proporciona un argumento final que representa una frecuencia de "coincidencia".bilinearFp Si hay una frecuencia de coincidencia (en hercios), asigna la frecuencia n.o 2Fpbilinearπfp (en rad/s) a la misma frecuencia en el dominio discreto, normalizada a la frecuencia de muestreo:πfp/Fs (en rad/muestra).

La función puede realizar esta transformación en tres representaciones lineales del sistema 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 de herramientas.Magnitude and Phase Response

El borde inferior de la banda está a 0,1 Hz como se esperaba. Tenga en cuenta, sin embargo, que el borde de la banda superior 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ógicos con bordes de banda "preformados", que se asignan a las ubicaciones correctas tras la transformación bilineal. Aquí las frecuencias preformadas y generan 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 de banda correctos 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 mediante la función de diseño IIR completa.cheby1 Por ejemplo, una versión analógica del filtro Chebyshev de ejemplo 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 Predeforman los bordes de la banda según sea necesario para obtener el filtro digital correcto.