Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

besself

Diseño de filtros analógicos de Bessel

Descripción

ejemplo

[b,a] = besself(n,Wo) devuelve los coeficientes de la función de transferencia de un filtro analógico de Bessel de paso bajo de orden n, donde Wo es la frecuencia angular hasta la cual el retardo de grupo del filtro es aproximadamente constante. Los valores más grandes de n producen un retardo de grupo que se aproxima mejor a una constante hasta Wo. La función besself no admite el diseño de filtros digitales de Bessel.

ejemplo

[z,p,k] = besself(___) diseña un filtro analógico de Bessel de paso bajo y devuelve sus ceros, polos y ganancia.

[A,B,C,D] = besself(___) diseña un filtro analógico de Bessel y devuelve las matrices que especifican su representación del espacio de estados.

Ejemplos

contraer todo

Diseñe un filtro analógico de Bessel de paso bajo de quinto orden con un retardo de grupo casi constante hasta 104 rad/segundo. Represente las respuestas de magnitud y fase del filtro con freqs.

wc = 10000;
[b,a] = besself(5,wc);
freqs(b,a)

Figure contains 2 axes objects. Axes object 1 with xlabel Frequency (rad/s), ylabel Phase (degrees) contains an object of type line. Axes object 2 with xlabel Frequency (rad/s), ylabel Magnitude contains an object of type line.

Calcule la respuesta de retardo de grupo del filtro como el negativo de la derivada de la respuesta de fase no envuelta. Represente el retardo de grupo para verificar que sea casi constante hasta la frecuencia de corte.

[h,w] = freqs(b,a);
grpdel = -diff(unwrap(angle(h)))./diff(w);

clf
loglog(w(2:end),grpdel)
xlabel('Frequency (rad/s)')
ylabel('Group delay (s)')
xline(wc)
grid

Figure contains an axes object. The axes object with xlabel Frequency (rad/s), ylabel Group delay (s) contains 2 objects of type line, constantline.

Diseñe un filtro analógico Butterworth paso bajo de 5.º orden con una frecuencia de corte de 2 GHz. Multiplique por 2π para convertir la frecuencia en radianes por segundo. Calcule la respuesta en frecuencia del filtro en 4096 puntos.

n = 5;
fc = 2e9;

[zb,pb,kb] = butter(n,2*pi*fc,"s");
[bb,ab] = zp2tf(zb,pb,kb);
[hb,wb] = freqs(bb,ab,4096);

Diseñe un filtro Chebyshev Tipo I de 5.º orden con la misma frecuencia de borde y 3 dB de ondulación de banda de paso. Calcule su respuesta en frecuencia.

[z1,p1,k1] = cheby1(n,3,2*pi*fc,"s");
[b1,a1] = zp2tf(z1,p1,k1);
[h1,w1] = freqs(b1,a1,4096);

Diseñe un filtro Chebyshev Tipo II de 5.º orden con la misma frecuencia de borde y 30 dB de atenuación de la banda de parada. Calcule su respuesta en frecuencia.

[z2,p2,k2] = cheby2(n,30,2*pi*fc,"s");
[b2,a2] = zp2tf(z2,p2,k2);
[h2,w2] = freqs(b2,a2,4096);

Diseñe un filtro elíptico de 5.º orden con la misma frecuencia de borde, 3 dB de ondulación de banda de paso y 30 dB de atenuación de banda de parada. Calcule su respuesta en frecuencia.

[ze,pe,ke] = ellip(n,3,30,2*pi*fc,"s");
[be,ae] = zp2tf(ze,pe,ke);
[he,we] = freqs(be,ae,4096);

Diseñe un filtro de Bessel de 5.º orden con la misma frecuencia de borde. Calcule su respuesta en frecuencia.

[zf,pf,kf] = besself(n,2*pi*fc);
[bf,af] = zp2tf(zf,pf,kf);
[hf,wf] = freqs(bf,af,4096);

Represente la atenuación en decibelios. Exprese la frecuencia en gigahercios. Compare los filtros.

plot([wb w1 w2 we wf]/(2e9*pi), ...
    mag2db(abs([hb h1 h2 he hf])))
axis([0 5 -45 5])
grid
xlabel("Frequency (GHz)")
ylabel("Attenuation (dB)")
legend(["butter" "cheby1" "cheby2" "ellip" "besself"])

Figure contains an axes object. The axes object with xlabel Frequency (GHz), ylabel Attenuation (dB) contains 5 objects of type line. These objects represent butter, cheby1, cheby2, ellip, besself.

Los filtros Butterworth y Chebyshev Tipo II tienen bandas de paso planas y bandas de transición anchas. Los filtros Chebyshev de tipo I y elíptico se desinflan más rápido pero tienen ondulaciones en la banda de paso. La entrada de frecuencia a la función de diseño Chebyshev Tipo II establece el comienzo de la banda de parada en lugar del final de la banda de paso. El filtro de Bessel tiene un retardo de grupo aproximadamente constante a lo largo de la banda de paso.

Argumentos de entrada

contraer todo

Orden del filtro, especificado como un escalar entero. En los diseños de paso banda y eliminador de banda, n representa la mitad del orden del filtro.

Tipos de datos: double

Frecuencia de corte, especificada como un escalar o un vector de dos elementos. Una frecuencia de corte es un límite superior o inferior del rango de frecuencias en el que el retardo de grupo del filtro es casi constante. Las frecuencias de corte deben expresarse en radianes por segundo y pueden tomar cualquier valor positivo.

  • Si Wo es escalar, besself diseña un filtro paso bajo o paso alto con una frecuencia de corte Wo.

  • Si Wo es un vector de dos elementos [w1 w2], en el que w1 < w2, besself diseña un filtro paso banda o eliminador de banda con una frecuencia de corte inferior w1 y una frecuencia de corte superior w2.

Tipos de datos: double

Argumentos de salida

contraer todo

Coeficientes de la función de transferencia del filtro, devueltos como vectores fila de longitud n + 1 para los filtros paso bajo y paso alto y 2n + 1 para los filtros paso banda y eliminador de banda. La función de transferencia se expresa en términos de b y a como

H(s)=B(s)A(s)=b(1)sn+b(2)sn1++b(n+1)a(1)sn+a(2)sn1++a(n+1).

Tipos de datos: double

Ceros, polos y ganancia del filtro, devueltos como dos vectores columna de longitud n (2n en los diseños de paso banda y eliminador de banda) y un escalar. La función de transferencia se expresa en términos de z, p y k como

H(s)=k(sz(1))(sz(2))(sz(n))(sp(1))(sp(2))(sp(n)).

Tipos de datos: double

Representación de espacios de estados del filtro, devuelta como matrices. Si m = n para los diseños de paso bajo y paso alto, y m = 2n para los filtros paso banda y eliminador de banda, entonces A es m × m, B es m × 1, C es 1 × m y D es 1 × 1.

Las matrices del espacio de estados relacionan el vector de estado x, la entrada u y la salida y a través de

x˙=Ax+Buy=Cx+Du.

Tipos de datos: double

Algoritmos

besself diseña filtros de Bessel analógicos, que se caracterizan por un retardo de grupo casi constante en toda la banda de paso, lo que preserva la forma de onda de las señales filtradas en la banda de paso.

Los filtros de Bessel de paso bajo tienen una respuesta de magnitud monótona decreciente, al igual que los filtros de Butterworth de paso bajo. En comparación con los filtros Butterworth, Chebyshev y elípticos, el filtro de Bessel tiene el rolloff más lento y requiere el orden más alto para cumplir una especificación de atenuación.

En los filtros de orden alto, el formato de espacio de estados es el más preciso numéricamente, seguido por el formato cero-polo-ganancia. El formato del coeficiente de la función de transferencia es el menos preciso; pueden surgir problemas numéricos en órdenes de filtro tan bajos como 15.

besself utiliza un algoritmo de cuatro pasos:

  1. Encuentra los polos, ceros y ganancia del prototipo analógico de paso bajo con la función besselap.

  2. Convierte los polos, los ceros y la ganancia en un formato de espacio de estados.

  3. Usa la función lp2lp para convertir el prototipo de filtro de paso bajo de tiempo continuo y espacio de estados en un filtro de paso bajo con la frecuencia de corte especificada.

  4. Convierte el filtro de espacio de estados de nuevo en una función de transferencia o en un formato cero-polo-ganancia, según sea necesario.

Referencias

[1] Parks, Thomas W., and C. Sidney Burrus. Digital Filter Design. New York: John Wiley & Sons, 1987.

Historial de versiones

Introducido antes de R2006a

Consulte también

| | | |