Main Content

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.

butter

Diseño del filtro Butterworth

Descripción

ejemplo

[b,a] = butter(n,Wn) devuelve los coeficientes de función de transferencia de un filtro Butterworth digital de paso bajo de la orden de la orden con frecuencia de corte normalizada.nWn

ejemplo

[b,a] = butter(n,Wn,ftype) diseña un filtro Butterworth de paso bajo, paso alto, paso de banda o bandstop, dependiendo del valor y el número de elementos de .ftypeWn Los diseños resultantes de paso de banda y bandstop son del pedido 2.n

Consulte para obtener información sobre cuestiones numéricas que afectan a la formación de la función de transferencia.Nota:Limitaciones

ejemplo

[z,p,k] = butter(___) diseña un filtro Butterworth digital lowpass, highpass, bandpasspass o bandstop y devuelve sus ceros, polos y ganancia. Esta sintaxis puede incluir cualquiera de los argumentos de entrada en sintaxis anteriores.

ejemplo

[A,B,C,D] = butter(___) diseña un filtro Butterworth digital lowpass, highpass, bandpasspass o bandstop y devuelve las matrices que especifican su representación de espacio de estado.

ejemplo

[___] = butter(___,'s') diseña un filtro Butterworth analógico de paso bajo, paso alto, paso de banda o bandstop con frecuencia angular de corte.Wn

Ejemplos

contraer todo

Diseñar un filtro Butterworth de paso bajo de 6o orden con una frecuencia de corte de 300 Hz, que, para los datos muestreados a 1000 Hz, corresponde a

<math display="block">
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>6</mn>
<mi>π</mi>
</mrow>
</math>
rad/muestra. Trazar sus respuestas de magnitud y fase. Utilícelo para filtrar una señal aleatoria de 1000 muestras.

fc = 300; fs = 1000;  [b,a] = butter(6,fc/(fs/2)); freqz(b,a)

 dataIn = randn(1000,1); dataOut = filter(b,a,dataIn);

Diseñe un filtro de bandstop Butterworth de 6o orden con frecuencias de borde normalizadas de

<math display="block">
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>2</mn>
<mi>π</mi>
</mrow>
</math>
Y
<math display="block">
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>6</mn>
<mi>π</mi>
</mrow>
</math>
rad/muestra. Trazar sus respuestas de magnitud y fase. Utilícelo para filtrar datos aleatorios.

[b,a] = butter(3,[0.2 0.6],'stop'); freqz(b,a)

dataIn = randn(1000,1); dataOut = filter(b,a,dataIn);

Diseñe un filtro Butterworth de paso alto de 9o orden. Especifique una frecuencia de corte de 300 Hz, que, para los datos muestreados a 1000 Hz, corresponde a

<math display="block">
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>6</mn>
<mi>π</mi>
</mrow>
</math>
rad/muestra. Trazar las respuestas de magnitud y fase. Convierta los ceros, los polos y la ganancia en secciones de segundo orden para su uso por .fvtool

[z,p,k] = butter(9,300/500,'high'); sos = zp2sos(z,p,k); fvtool(sos,'Analysis','freq')

Diseñe un filtro de paso de banda Butterworth de 20o orden con una frecuencia de corte más baja de 500 Hz y una frecuencia de corte más alta de 560 Hz. Especifique una frecuencia de muestreo de 1500 Hz. Utilice la representación de espacio de estado. Diseñe un filtro idéntico utilizando .designfilt

[A,B,C,D] = butter(10,[500 560]/750); d = designfilt('bandpassiir','FilterOrder',20, ...     'HalfPowerFrequency1',500,'HalfPowerFrequency2',560, ...     'SampleRate',1500);

Convierta la representación de espacio de estado en secciones de segundo orden. Visualice las respuestas de frecuencia utilizando .fvtool

sos = ss2sos(A,B,C,D); fvt = fvtool(sos,d,'Fs',1500); legend(fvt,'butter','designfilt')

Diseñe un filtro de paso bajo Butterworth analógico de 5o orden con una frecuencia de corte de 2 GHz. Multiplicar por

<math display="block">
<mrow>
<mn>2</mn>
<mi>π</mi>
</mrow>
</math>
para convertir la frecuencia en radianes por segundo. Calcular la respuesta de frecuencia del filtro en 4096 puntos.

n = 5; f = 2e9;  [zb,pb,kb] = butter(n,2*pi*f,'s'); [bb,ab] = zp2tf(zb,pb,kb); [hb,wb] = freqs(bb,ab,4096);

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

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

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

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

Diseñe un filtro elíptico de 5o 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. Calcular su respuesta de frecuencia.

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

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

plot(wb/(2e9*pi),mag2db(abs(hb))) hold on plot(w1/(2e9*pi),mag2db(abs(h1))) plot(w2/(2e9*pi),mag2db(abs(h2))) plot(we/(2e9*pi),mag2db(abs(he))) axis([0 4 -40 5]) grid xlabel('Frequency (GHz)') ylabel('Attenuation (dB)') legend('butter','cheby1','cheby2','ellip')

Los filtros Butterworth y Chebyshev Tipo II tienen bandas de paso planas y bandas de transición anchas. El Chebyshev Tipo I y los filtros elípticos se despliegan más rápido, pero tienen ondulación de banda de paso. La entrada de frecuencia a la función de diseño Chebyshev Tipo II establece el principio de la banda de parada en lugar del final de la banda de paso.

Argumentos de entrada

contraer todo

Orden de filtro, especificado como un escalar entero.

Tipos de datos: double

Frecuencia de corte, especificada como un vector escalar o de dos elementos. La frecuencia de corte es la frecuencia a la que la respuesta de magnitud del filtro es 1 / √2.

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

    Si es el vector de dos elementos, donde < , entonces diseña un filtro de paso de banda o bandstop con menor frecuencia de corte y mayor frecuencia de corte.Wn[w1 w2]w1w2butterw1w2

  • Para los filtros digitales, las frecuencias de corte deben estar entre 0 y 1, donde 1 corresponde a la tasa Nyquist: la mitad de la frecuencia de muestreo o rad/muestra.π

    Para los filtros analógicos, las frecuencias de corte deben expresarse en radianes por segundo y pueden asumir cualquier valor positivo.

Tipos de datos: double

Tipo de filtro, especificado como uno de los siguientes:

  • especifica un filtro de paso bajo con frecuencia de corte. es el valor predeterminado para escalar .'low'Wn'low'Wn

  • especifica un filtro de paso alto con frecuencia de corte.'high'Wn

  • especifica un filtro de paso de banda de la orden 2 si es un vector de dos elementos. es el valor predeterminado cuando tiene dos elementos.'bandpass'nWn'bandpass'Wn

  • especifica un filtro de bandstop de la orden 2 si es un vector de dos elementos.'stop'nWn

Argumentos de salida

contraer todo

Transfiera los coeficientes de función del filtro, devueltos como vectores de fila de longitud + 1 para filtros de paso bajo y paso alto y 2 + 1 para filtros de paso de banda y paso de banda.nn

  • En el caso de los filtros digitales, la función de transferencia se expresa en términos deba

    H(z)=B(z)A(z)=b(1)+b(2)z1++b(n+1)zna(1)+a(2)z1++a(n+1)zn.

  • Para los filtros analógicos, la función de transferencia se expresa en términos de y comoba

    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 de columna de longitud (2 para diseños de paso de banda y bandstop) y un escalar.nn

  • Para los filtros digitales, la función de transferencia se expresa en términos de , , y comozpk

    H(z)=k(1z(1)z1)(1z(2)z1)(1z(n)z1)(1p(1)z1)(1p(2)z1)(1p(n)z1).

  • Para los filtros analógicos, la función de transferencia se expresa en términos de , , y comozpk

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

Tipos de datos: double

Representación de espacio de estado del filtro, devuelta como matrices. Si para los diseños de paso sin paso y paso alto y 2 para los filtros de paso de banda y de paso de banda, entonces es , es , es 1 , es 1 , y es 1 - 1.mnmnAmmBmCmD

  • Para los filtros digitales, las matrices de espacio de estado relacionan el vector de estado, la entrada y la salida a través dexuy

    x(k+1)=Ax(k)+Bu(k)y(k)=Cx(k)+Du(k).

  • Para los filtros analógicos, las matrices de espacio de estado relacionan el vector de estado, la entrada y la salida a través dexuy

    x˙=Ax+Buy=Cx+Du.

Tipos de datos: double

Más acerca de

contraer todo

Limitaciones

Inestabilidad numérica de la sintaxis de la función de transferencia

En general, utilice la sintaxis para diseñar filtros IIR.[z,p,k] Para analizar o implementar el filtro, puede utilizar la salida con .[z,p,k]zp2sos Si diseña el filtro con la sintaxis, es posible que encuentre problemas numéricos.[b,a] Estos problemas se deben a errores de redondeo y pueden ocurrir por tan solo 4.n En el ejemplo siguiente se muestra esta limitación.

n = 6; Wn = [2.5e6 29e6]/500e6; ftype = 'bandpass';  % Transfer Function design [b,a] = butter(n,Wn,ftype);      % This is an unstable filter  % Zero-Pole-Gain design [z,p,k] = butter(n,Wn,ftype); sos = zp2sos(z,p,k);  % Display and compare results hfvt = fvtool(b,a,sos,'FrequencyScale','log'); legend(hfvt,'TF Design','ZPK Design')

Algoritmos

Los filtros Butterworth tienen una respuesta de magnitud que es máximamente plana en la banda de paso y monotónica en general. Esta suavidad viene al precio de la disminución de la pendiente del desnivel. Los filtros elípticos y Chebyshev generalmente proporcionan un despliegue más pronunciado para un orden de filtro determinado.

utiliza un algoritmo de cinco pasos:butter

  1. Encuentra los polos prototipo analógicos de paso bajo, ceros y ganancia utilizando la función .buttap

  2. Convierte los polos, ceros y ganancia en forma de espacio estatal.

  3. Si es necesario, utiliza una transformación de espacio de estado para convertir el filtro de paso bajo en un filtro de paso de banda, paso alto o paso de banda con las restricciones de frecuencia deseadas.

  4. Para el diseño de filtro sin filtro digital, se utiliza para convertir el filtro analógico en un filtro digital a través de una transformación bilineal con prewarping de frecuencia.bilinear El ajuste cuidadoso de la frecuencia permite que los filtros analógicos y los filtros digitales tengan la misma magnitud de respuesta de frecuencia en y en .Wnw1w2

  5. Convierte el filtro de espacio de estado a su función de transferencia o forma de ganancia de polo cero, según sea necesario.

Capacidades ampliadas

Introducido antes de R2006a