Main Content

La traducción de esta página está obsoleta. 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

[b,a] = besself(n,Wo,ftype) diseña un filtro analógico de Bessel de paso bajo, paso alto, paso banda o eliminador de banda, en función del valor de ftype y del número de elementos de Wo. Los diseños de paso banda y de eliminador de banda resultantes son de orden 2n.

[z,p,k] = besself(___) diseña un filtro analógico de Bessel de paso bajo, paso alto, paso banda o eliminador de banda y devuelve sus ceros, sus polos y su ganancia. Esta sintaxis puede incluir cualquiera de los argumentos de entrada de las sintaxis anteriores.

[A,B,C,D] = besself(___) diseña un filtro analógico de Bessel de paso bajo, paso alto, paso banda o eliminador de banda 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.

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

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

Calcule la respuesta de retardo de grupo del filtro como 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,1000);
grpdel = diff(unwrap(angle(h)))./diff(w);

clf
semilogx(w(2:end),grpdel)
xlabel('Frequency (rad/s)')
ylabel('Group delay (s)')

Figure contains an axes. The axes contains an object of type line.

Diseñe un filtro de Bessel de paso banda de orden 12 con una banda de paso que oscile entre 300 rad/s y 500 rad/s. Calcule la respuesta de frecuencia del filtro.

[b,a] = besself(6,[300 500],'bandpass');

[h,w] = freqs(b,a);

Represente las respuestas de magnitud y fase del filtro. Desenvuelva la respuesta de fase para evitar los saltos de 180 y 360 y convertirla de radianes a grados. Como era de esperar, la respuesta de fase está casi lineal en la banda de paso.

subplot(2,1,1)
plot(w,20*log10(abs(h)))
ylabel('Magnitude')
subplot(2,1,2)
plot(w,180*unwrap(angle(h))/pi)
ylabel('Phase (degrees)')
xlabel('Frequency (rad/s)')

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

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 bajo o paso alto con una frecuencia de corte inferior w1 y una frecuencia de corte superior w2.

Tipos de datos: double

Tipo de filtro, especificado como:

  • 'low': un filtro paso bajo con frecuencia de corte Wo. 'low' es el valor predeterminado del escalar Wo.

  • 'high': un filtro paso alto con frecuencia de corte Wo.

  • 'bandpass': un filtro paso banda de orden 2 n si Wo es un vector de dos elementos. 'bandpass' es el valor predeterminado cuando Wo tiene dos elementos.

  • 'stop': un filtro eliminador de banda de orden 2 n si Wo es un vector de dos elementos.

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. Si es necesario, utiliza una transformación de espacio de estados para convertir el filtro paso bajo en un filtro paso banda, paso alto o eliminador de banda con las restricciones de frecuencia deseadas.

  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.

Consulte también

| | | |

Introducido antes de R2006a